Change UI to use abstract class