refactored marker builder