refactored, new marker class