rethink pointers & minor fixes