Major changes. Still in dev.