merged with mapjs