main functionality ready