User main functionality