alpha version
clean code