significant refactoring
lots of support for something that isn't in 12.04
neater library layout
flake8