refactoring, javadocs, allowedX now depends on violin key instead of
being set arbitrary