updated with users system, simply a starting point though