most of it is working I think