layer functionality completed