Initial launch commit, still needs a lot of polish and performance enhancement