loads of improvements, but stuill buggy