Position now gets set properly (added unittest for that), better interface