Changed the structure a bit so things aren't merrily all around. Array initialization, cuda memory operations and type checking is now done in __init__.