changes require QuartzCore
fixed layout