working! with a few TODOs