Refactor worksite model and tests