fix basic implementation