First take at layers complete.  Needs further testing.