Fully object-orientated system in Java