-O2, multi-unit compilation
added some useless inlines