fixed to wrap exception with RuntimeException