this should be a little smoother to use