everything is close to working