will add better function