moved to map instead of lists