fix cast
add run and builder