implemented allocate, fixed print a little (though it still cant print arrays)