added more todo logic & tests