everything workin, ugly code need clean