alpha version(everything is ready, but there are some bad things)