Finish all base implementation -> enhancement