some parts are still wonky