moving looper into abstract class