new entitysystem, needs some work