made a lot of changes, almost ready for production