change implementation to be a subclass of ScrollView