most of project should be implemented now. I think code style needs a big revision