Added abstract class User