break admin component into abstract class