80% complete... see readme