restruct the whole project and use sbt as the new building tool