first commit

works fine with semantic surfaces