shows use of Interface and packages in java
use of Input class for interaction with user
simple use of ArrayList
shows use of inheritance