add garbage collector for marking heap, weak refs and caf mangement