added abstractApplication class and ApplicationInterface