Initial division
Redesigned for greater portability