seems to be working well. need to add session and other parts then test more