adding methods to interface
less memory model is not working properly yet (indexes aren't correct)
changing bit to be an enum (this should help reduce object allocation substantially)