some few changes and implementations