added some constructors, changed map