- refactored to create version 1