initial spec commit, feel free to edit