Changed  around some implementations