chaging code style and need to improve more