Basic framework established. There are quite a few missing implementations, but the code structure has at least been established. Next job is to actually fill in these implementations.