all main methods done