started work (still lots TODO)