adding some functionality and alt versions