Swithced to generic types