arrows work! - but need massive refactor