verbose; looking to refactor