sub optimal push, but most everything is working up to this point