Refactor away some complexity