Library OOP Class Structure in Java