Huge overhaul, marking as alpha