far from perfect but as good as it gets...