further implemented separation