UPDATE: add creating objects. Need to revise correctness in Linux