add tack model, modify user_dashboard to show tack, some refactoring