Core: Made all fields private, added getters